export default {
	computed: {
		prettyModel() {
			return this.prettyJSON(this.model);
		}
	},
	methods: {
		prettyJSON(json) {
			if (json) {
				json = JSON.stringify(json, null, 4);
				json = json
					.replace(/&/g, "&amp;")
					.replace(/</g, "&lt;")
					.replace(/>/g, "&gt;");
				return json.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+-]?\d+)?)/g, function(match) {
					let cls = "number";
					if (/^"/.test(match)) {
						if (/:$/.test(match)) {
							cls = "key";
						} else {
							cls = "string";
						}
					} else if (/true|false/.test(match)) {
						cls = "boolean";
					} else if (/null/.test(match)) {
						cls = "null";
					}
					return "<span class='" + cls + "'>" + match + "</span>";
				});
			}
		}
	}
};
